package flst.ipiweb.persistance.dao.jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import flst.ipiweb.persistance.dao.IEnseigneDao;
import flst.ipiweb.transverse.Enseigne;

public class EnseigneDaoJdbc implements IEnseigneDao{
	
	private JdbcUtils jdbcUtils = JdbcUtils.getInstance();

	@Override
	/**
	 * Cette méthode permet de récupérer la liste des enseignes en base
	 * @return List<Enseigne> : la liste des enseignes
	 */
	public List<Enseigne> listerEnseigne() {
		
		List<Enseigne> listeEnseigne = new ArrayList<Enseigne>();
		
		try
		{
			Connection vConnection = jdbcUtils.getConnection();
			Statement vStmt = vConnection.createStatement();
			
			String vRequeteSelect = "SELECT * FROM IPII_STORES";
			vStmt.execute(vRequeteSelect);
			ResultSet vRs = vStmt.getResultSet();
			while(vRs.next()){
				Enseigne enseigne = new Enseigne();
				//STORE_ID 
				enseigne.setIdEnseigne(vRs.getInt("STORE_ID"));
				//STORE_CODE 
				enseigne.setLibelle(vRs.getString("STORE_CODE"));

				listeEnseigne.add(enseigne);
			}
			
			vStmt.close();
			vConnection.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		return listeEnseigne;
	}

	@Override
	public Enseigne getEnseigneById(int id) {
		Enseigne enseigne = new Enseigne();
		try
		{
			Connection vConnection = jdbcUtils.getConnection();
			
			String vRequeteSelect = "SELECT * FROM IPII_STORES WHERE STORE_ID = ?";
			PreparedStatement ps = vConnection.prepareStatement(vRequeteSelect);
			ps.setInt(1, id);
			
			ResultSet vRs = ps.executeQuery();
			
			if(vRs.next()){
				//STORE_ID 
				enseigne.setIdEnseigne(vRs.getInt("STORE_ID"));
				//STORE_CODE 
				enseigne.setLibelle(vRs.getString("STORE_CODE"));
			}
			ps.close();
			vConnection.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		return enseigne;
	}
}
